package config;

public class Constants {
    public static String[] plcDataTypes = {
            "",
            "INT",     // 有符号整型，通常对应两个字节（16位）
            "UINT",    // 无符号整型，通常对应两个字节（16位）
            "REAL",    // 浮点型，通常对应四个字节（32位）的浮点数
            "DINT",    // 有符号整型，通常对应四个字节（32位）
            "UDINT",   // 无符号整型，通常对应四个字节（32位）
            "VERCHAR",
            "CHAR",
            "BOOL",
            "INT[ ]",  // 长整型数组
            "LONG[ ]",  // 长整型数组
            "FLOAT[ ]",  // 浮点型数组

    };

    public static String[] plcDataTypesAll = {
            "",
            "BYTE",    // 通常对应一个字节（8位）
            "WORD",    // 通常对应两个字节（16位），可能等同于short或unsigned short
            "DWORD",   // 通常对应四个字节（32位），可能等同于int或unsigned int
            "SINT",    // 有符号整型，通常对应一个字节（8位）
            "USINT",   // 无符号整型，通常对应一个字节（8位）
            "INT",     // 有符号整型，通常对应两个字节（16位）
            "UINT",    // 无符号整型，通常对应两个字节（16位）
            "DINT",    // 有符号整型，通常对应四个字节（32位）
            "UDINT",   // 无符号整型，通常对应四个字节（32位）
            "LINT",    // 有符号整型，通常对应八字节（64位）
            "ULINT",   // 无符号整型，通常对应八字节（64位）
            "REAL",    // 浮点型，通常对应四个字节（32位）的浮点数
            "LREAL",   // 长浮点型，通常对应八字节（64位）的浮点数
            "STRING",  // 字符串类型，用于表示文本数据
            "BIT",     // 位类型，通常用于表示单个二进制开关状态
            "BOOL",     // 布尔型，用于表示逻辑真值或假值
            "INT[ ]",   // 整型数组
            "FLOAT[ ]",  // 浮点型数组
            "LONG[ ]"  // 长整型数组
    };

    public static int[] plcDataLengths = {
            0,
            16,        // SINT
            16,        // USINT
            32,       // REAL
            32,
            32,
            -1,
            -1,
            1,
            -1,
            -1,
            -1
    };

    public static int[] plcDataLengthsAll = {
            0,
            8,        // BYTE
            16,       // WORD
            32,       // DWORD
            8,        // SINT
            8,        // USINT
            16,       // INT
            16,       // UINT
            32,       // DINT
            32,       // UDINT
            64,       // LINT
            64,       // ULINT
            32,       // REAL
            64,       // LREAL
            -1,       // STRING (可变长度，-1 表示变长)
            1,        // BIT
            8,         // BOOL (通常是8位，但具体实现可能不同)
            0,
            0,
            0
    };
}
